#include "widget.h"
#include "ui_widget.h"

#include <QListWidget>


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    QListWidget *pListWidget = new QListWidget(this);

    int i = 0;

    do {

        ++i;
        QListWidgetItem *pItem = new QListWidgetItem(pListWidget);
        pItem->setData(Qt::UserRole, i); // 用户数据
        pItem->setData(Qt::UserRole + 1, QString("Qter %1").arg(i)); // 用户数据
        pItem->setText(QString("Item %1").arg(i)); // 文本

        pListWidget->addItem(pItem);

    } while (i < 5);
    QListWidgetItem *pItem1 = new QListWidgetItem(pListWidget);
    pItem1->setData(Qt::UserRole, "001"); // 用户数据
    pItem1->setData(Qt::UserRole + 1, QString("ZhangSan")); // 用户数据
    pItem1->setData(Qt::UserRole + 2, QString("管理员")); // 用户数据
    pItem1->setText(QString("张三")); // 文本

    pItem1 = new QListWidgetItem(pListWidget);
    pItem1->setData(Qt::UserRole, "002"); // 用户数据
    pItem1->setData(Qt::UserRole + 1, QString("LiSi")); // 用户数据
    pItem1->setData(Qt::UserRole + 2, QString("董事长")); // 用户数据
    pItem1->setText(QString("李四")); // 文本

    pItem1 = new QListWidgetItem(pListWidget);
    pItem1->setData(Qt::UserRole, "003"); // 用户数据
    pItem1->setData(Qt::UserRole + 1, QString("WangWu")); // 用户数据
    pItem1->setData(Qt::UserRole + 2, QString("总经理")); // 用户数据
    pItem1->setText(QString("王五")); // 文本


    pListWidget->show();

    // 连接信号槽
    connect(pListWidget, &QListWidget::itemClicked, this, &Widget::onItemClicked);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::onItemClicked(QListWidgetItem *item)
{

    int nID = item->data(Qt::UserRole).toInt(); // 获取用户数据
    QString strName = item->data(Qt::UserRole + 1).toString(); // 获取用户数据
    QString strPos = item->data(Qt::UserRole + 2).toString(); // 获取用户数据


    qDebug() << "ID : " << nID;

    qDebug() << "Name : " << strName;
    qDebug() << "职位 : " << strPos;

}
